
#include <QMetaEnum>
#include <QObject>

#include "demo.h"
#include<debugx>

void enumDemo(QMetaEnum metaEnum)
{

    debugx("");
    qDebug() << metaEnum.name(); /** 枚举名字 */
    qDebug() << metaEnum.scope(); /** 范围 */

    /** 获取枚举数量，根据序号获取字符串 */
    for (int i = 0; i < metaEnum.keyCount(); i++)
        qDebug() << metaEnum.key(i);

    /** 根据序列号获取值 */
    for (int i = 0; i < metaEnum.keyCount(); i++)
        qDebug() << metaEnum.value(i);

    /** 根据值获取字符串 */
    QString str = metaEnum.valueToKey(MyDemo::MyEnum::log_debug);
    qDebug() << "ch : " << str;

    /** 根据字符串获取值 */
    auto e2 = metaEnum.keysToValue("log_warning");
    qDebug() << "log_warning : " << e2;
}
